﻿using AutoMapper;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using QuanLyGiaoVuDAL.DTO;
using System.ComponentModel.DataAnnotations;

namespace QuanLyGiaoVuUI.Models.ThongBao
{
    public class ThongBaoViewModel
    {
        public Guid MaThongBao { get; set; }

        [Display(Name = "Tiêu đề")]
        [Required(ErrorMessage="Chưa nhập tiêu đề.")]
        public String TieuDeThongBao { get; set; }

        [Display(Name = "Nội dung")]
        [Required(ErrorMessage="Chưa nhập nội dung")]
        public String NoiDungThongBao { get; set; }

        [Display(Name = "Người nhận")]
        [Required(ErrorMessage="Chưa có người nhận.")]
        public String NguoiNhanIDs { get; set; }

        public DateTime NgayGuiThongBao { get; set; }

        [Display(Name = "Gửi qua Email")]
        public bool GuiQuaEmail { get; set; }

        public Guid? MaTaiLieu1 { get; set; }

        public Guid? MaTaiLieu2 { get; set; }

        public Guid? MaTaiLieu3 { get; set; }

        public Guid? MaTaiLieu4 { get; set; }

        public Guid? MaTaiLieu5 { get; set; }

        public GiangVienDTO NguoiGui { get; set; }

        public IList<TaiLieuDTO> DanhSachTaiLieuDinhKem { get; set; }

        public static ThongBaoViewModel FromThongBaoDTO(ThongBaoDTO thongBaoDTO)
        {
            Mapper.CreateMap(typeof(ThongBaoDTO), typeof(ThongBaoViewModel));
            var thongBaoViewModel = new ThongBaoViewModel();
            Mapper.Map(thongBaoDTO, thongBaoViewModel);
            return thongBaoViewModel;
        }

        public static IEnumerable<ThongBaoViewModel> FromThongBaoDTOList(IEnumerable<ThongBaoDTO> thongBaoDTOList)
        {
            IList<ThongBaoViewModel> viewModelList = new List<ThongBaoViewModel>();
            foreach (ThongBaoDTO thongBao in thongBaoDTOList)
            {
                viewModelList.Add(ThongBaoViewModel.FromThongBaoDTO(thongBao));
            }
            return viewModelList;
        }

        public ThongBaoDTO ToThongBaoDTO()
        {
            Mapper.CreateMap(typeof(ThongBaoViewModel), typeof(ThongBaoDTO));
            var thongBaoDTO = new ThongBaoDTO();
            Mapper.Map(this, thongBaoDTO);
            return thongBaoDTO;
        }
    }
}